/************************************************************************************************************************************************************
*                          DESENVOLVEDORES: Denis Tobias; Diogo Oliveira; Marcel M. Marum; Marcos F. Rachid; Rodrigo M. Botelho
*                                       ORIENTADOR e DESENVOLVEDOR: Prof.Dr. Eraldo Pereira Marinho
*
*                                                           Arquivo: main.c
*
************************************************************************************************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include "lexer.h"
#include "parser.h"

extern FILE *tape;//arquivo de entrada
extern FILE *output;//arquivo de saida
char c;//variavel auxiliar para output de arquivo

main()
{
	//referencia o arquivo entrada.pas a variavel tape.
	tape = fopen("source.pas", "r");
	if(!tape){
		printf("Error: Input file!\n");
		exit(0);
	}
	output = fopen("asm_file.s","w");
	if(!output){
		printf("Error: Output file!\n");
		exit(0);
	}

	//lookahead recebe o valor esperado da proxima palavra em tape.
	lookahead = gettoken();

	//função inicial de estruturação do analisador sintático.
	pas();

	fclose(tape);
	fclose(output);

	output = fopen("asm_file.s","r");   /* Arquivo ASCII, para leitura */
	if(!output)
	{
	    printf( "Error: Output file!\n");
	    exit(0);
	}
	while((c = getc(output) ) != EOF)      /* Enquanto não chegar ao final do arquivo */
	    printf("%c", c);                 /* imprime o caracter lido */
	fclose(output);
	
	exit(0);
}
